═══ 1. Cover ═══ Customizing the OS/2 Workplace Copyright (c) Syntegration Inc. 1993, 1996. All Rights Reserved. Tel: 1-909-464-9450 Fax: 1-909-627-3541 E-Mail:73707.3331@COMPUSERVE.COM World Wide Web URL: http://www.primenet.com/~syntegrn ═══ 2. Acknowledgements ═══ The Secure Workplace, Traveling Workplace, and Syntegration are trademarks of Syntegration Inc. IBM, OS/2, and Workplace Shell are trademarks of IBM Business Machines Corporation. Other Trademarks are trademarks of their owners. ═══ 3. Introduction ═══ This document is intended to help you understand and customize your OS/2 Workplace. If you are an administrator of many OS/2 workstations then you definitely need the information presented here. If you are a casual user in a stand-alone environment then your interface will naturally be the object settings notebooks. The glossary can be particularly helpful in helping you to understand the terms we use. If you want to take maximum advantage of Syntegration's Desktop Management and Security products then read on. We intend to cover the following topics. o Unattended Customization of Workplace Objects. o Unattended Creation of Desktops By unattended we mean hands-off. You define a procedure and let the tools perform the work. If the tool can perform the work then it can repeat the job as many times as required. If you manage multiple workstations then this is the thing to do. ═══ 4. Customizing Workplace Objects ═══ Workplace Shell objects are easily customized through their settings notebook. This approach is fine for the user. Administrators who need to customize one or more workstations in an unattended fashion require an alternative path. The information in this section will help you to customize and distribute objects with a minimum amount of labor. The OS/2 operating system provides an Application Programming Interface (API) for this purpose. You write compiled language or REXX programs to access these functions. You can find the API descriptions the Information Folder under REXX Information. Look in the Rexx Utilities chapter of the contents. The Secure Workplace provides a tool, called the Object Editor, that gives you access to the Workplace Object API without forcing you to write a program. With the Object Editor (OBJEDIT.EXE) you can create, modify, or delete OS/2 Workplace objects. Once you understand how objects are described, The Object Editor can help you to speed up the customization process. For details, select from the list below: o Creating a Workplace Object o Updating a Workplace Object o Deleting a Workplace Object o Standard Object Keywords o Folder Setup Keywords o Program Setup Keywords o Launch Pad Setup Keywords o Printer Setup Keywords o Network Printer Setup Keywords ═══ 4.1. Creating workplace objects ═══ The easiest way to create a workplace object is by dragging the representative icon from the Templates folder. This method is convenient, but it does not provide the hands-off capability required for unattended customization. To create an object you must first be able to describe it. An object is described by a Classname, a Title, a Location, and Setup parameters. These items are described below. Classname The type of object to be created. The classname is a case sensitive word such as WPProgram, WPFolder, WPPrinter, and others. You can get a list of available OS/2 Workplace classes from the CLASSES.CMD utility program or the Object Editor . Title The object's title. This title appears below the object's icon and can also be modified in the general page of the settings notebook. You can define multiple line titles by using the carat character "^" as a line delimiter. Location The object's location. This item defines a folder in which the object will be placed. You can specify either an OBJECTID or a file system path. When you specify a path you must use a fully qualified path name such as "c:\desktop\information". An OBJECTID begins with '<' and ends with '>'. OBJECTIDs are defined later on. Some predefined OBJECTIDs are: The Desktop. The Startup folder. The System folder. The Templates folder. The System Setup folder. The Information folder. The Drives folder. The Hidden folder. Setup A setup string containing a series of "keyname=value" pairs, that defines the behavior of the object. "keynames" are separated by semicolons, and "values" are separated by commas. the last "keyname=value" pair in your setup string must be terminated with a semicolon. "key=value;key2=value1,value2;" If you want a literal comma or a literal semicolon inside one of the fields you must type the following: ^, A literal comma. ^; A literal semicolon. Each object class documents the keynames and the parameters it expects to see immediately following. Note that all parameters have safe defaults. It is never required to pass setup parameters to an object. We recommend that you assign a unique OBJECTID to all objects you create. Later in this document we will provide a list of valid keynames and keyvalues for each object class. Once you have defined an object, you will need to specify an Action in order to create it. The allowed actions are: Fail No object will be created if an object with the given OBJECTID already exists. The Object Editor and SysCreateObject action code is 'F' Replace If an object with the given OBJECTID exists, Delete the existing object and create a new object. The Object Editor and SysCreateObject action code is 'R' Update If an object with the given OBJECTID exists, Update its settings with the new information in the setup string. The Object Editor and SysCreateObject action code is 'U'. You create objects on a OS/2 desktop by using the REXX function (SysCreateObject), the OS/2 function ( WinCreateObject), or the Secure Workplace Object Editor. Each of these facilities recognize the Classname, Title, Location, Setup string, and Action items we just discussed. For an example lets define the REXX interface. SysCreateObject has the following syntax: result = SysCreateObject( Classname, Title, Location [,Setup ] [,Action] ) resultgives the return value. The possible return values are 1 (TRUE) if the object was created and 0 (FALSE) if the object was not created. The WinCreateObject function uses exactly the same parameters. The Object Editor uses the same parameters. What even better is that it provides an interface that does not require programming. Refer to the Object Editor documentation for information on how to use it. The following example illustrates the use of SysCreateObject in a REXX program to create a Folder. ┌──────────────────────────────────────────────────────────────┐ │ │ │'@echo off' │ │call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' │ │call SysLoadFuncs │ │ret = SysCreateObject( 'WPFolder', │ │ 'System Administration', │ │ '', │ │ 'OBJECTID=;', │ │ 'R' ) │ │return(0) │ │ │ └──────────────────────────────────────────────────────────────┘ Here is the same object description in a Object Make file used by the Object Editor. ┌──────────────────────────────────────────────────────────────┐ │ │ │* │ │* 3 Comment lines │ │* │ │CLASS "WPFolder" │ │TITLE "System Administration" │ │LOCATION "" │ │SETUP "OBJECTID=;" │ │ACTION R │ │ │ └──────────────────────────────────────────────────────────────┘ For completeness here is the same object description in Resource file fragment. You can read about resource files in the Desktop creation section later. "PM_InstallObject" "System Administration;WPFolder;;REPLACE" "OBJECTID=" Notes. The first line of any REXX procedure must be a comment enclosed in brackets. It is the presence of this comment that tells the OS/2 command processor that this is to be interpreted as a REXX procedure rather than as an ordinary OS/2 batch file. The two calls that follow the 'echo off' statement load the RexxUtil package, in which are contained functions that will be needed, including SysCreateObject. When creating objects you should use the setup string to give the object a unique OBJECTID. The OBJECTID gives you a method to uniquely identify and operate on the object in the future. You cannot update or delete an object programatically unless you know it's OBJECTID. You can also use the OBJECTID of folder objects as a location for insertion of other objects into the folder. See Also o Standard Setup Keywords o Folder Setup Keywords o Program Setup Keywords o Printer Setup Keywords o Launchpad Setup Keywords ═══ 4.2. Updating workplace Objects ═══ Perhaps the easist way to update a workplace object's settings is through its settings notebook. While this method is convenient, it does not provide the hands-off capability required for unattended customization. To update an object in an unattended mode you must identify it with a name and define the modification parameters with a setup string. These items are described below. Name is the object name. This can be specified as an OBJECTID (for example ) or as a fully qualified file name. This parameter is similar to the location parameter described for creating objects. Setup is a setup string as described for creating workplace objects. You update objects on a OS/2 desktop by using the REXX function (SysSetObjectData), the OS/2 function (WinSetObjectData), or the Secure Workplace Object Editor. For an example lets define the REXX interface. The SysSetObjectData function syntax is: result = SysSetObjectData( Name, Setup ) Each parameter has a parallel in WinSetObjectData and the Object Editor. The Object Editor uses an action code of 'E' to define this function. Notes. The object update function can be used to open an instance of an object by using a setup string with "OPEN=DEFAULT;" included. See the description of the location and setup strings in the previous section for an explanation of the parameters. You can get a list of the available OS/2 Workplace locations from the OBJECTS.CMD utility program or from the Object Editor location list. See Also o Standard Setup Keywords o Folder Setup Keywords o Program Setup Keywords o Printer Setup Keywords o Launchpad Setup Keywords ═══ 4.3. Deleting workplace objects ═══ Perhaps the easiest way to delete a workplace object is to drop it on the shredder. While this method is convenient, it does not provide the hands-off capability required for unattended customization. Besides, the shredder cannot delete objects that have their NODELETE style set. (ie. NODELETE=YES;). The Object Manager makes short work of such objects. You can delete objects in an unattended mode by using the REXX function (SysDestroyObject), the OS/2 function (WinDestroyObject), or the Secure Workplace Object Editor. To delete an object you must know it's OBJECTID and its NODELETE style must be reset (ie. NODELETE=NO;) The Object Editor action code for object deletion is 'D'. To insure that an object can be deleted you should first update its NODELETE style to (NODELETE=NO). Folder objects can be particularly hairy because they cannot be deleted if they contain objects that have the NODELETE style set. See Also o Standard Setup Keywords o Updating a Workplace Object ═══ 5. Workplace Shell Object Classes ═══ The figure below is a hierarchical lists of Workplace Shell classes. Each branch in the tree represents an immediate descendant of a Workplace object class. This table is provided for completeness only. It is not our intention to give you a complete description of each class. To discover an objects class name, drag the object and drop it on the Object Manager CLASS NAME WPObject ├── WPAbstract │ ├── WPClock │ ├── WPCountry │ ├── WPDisk │ ├── WPLaunchPad │ ├── WPKeyboard │ ├── WPMouse │ ├── WPPalette │ │ ├── WPColorPalette │ │ ├── WPFontPalette │ │ └── WPSchemePalette │ ├── WPPower │ ├── WPPrinter │ │ └── WPRPrinter │ ├── WPProgram │ ├── WPShadow │ │ └── WPNetLink │ ├── WPShredder │ ├── WPSound │ ├── WPSpecialNeeds │ ├── WPSpool │ ├── WPSystem │ └── WPWinConfig │ ├── WPFileSystem │ ├── WPDataFile │ │ ├── WPBitmap │ │ ├── WPIcon │ │ ├── WPMet │ │ ├── WPPif │ │ ├── WPPointer │ │ └── WPProgramFile │ │ └── WPCommandFile │ └── WPFolder │ ├── WPDesktop │ ├── WPDrives │ ├── WPMinWinViewer │ ├── WPNetgrp │ ├── WPNetwork │ ├── WPRootFolder │ ├── WPServer │ ├── WPSharedDir │ ├── WPStartup │ └── WPTemplates │ └── WPTransient ├── WPJob ├── WPPort ├── WPPdr └── WPQdr ═══ 5.1. Standard Setup Keywords ═══ The following table shows the "keyname=value" pairs supported by all workplace classes. ┌────────────┬────────────┬────────────────────────────────────────┐ │KEYNAME │VALUE │DESCRIPTION │ ├────────────┼────────────┼────────────────────────────────────────┤ │OBJECTID │ │This sets the object's identity. The │ │ │ │OBJECTID will stay with the object even │ │ │ │if it is moved or renamed. An OBJECTID │ │ │ │is any unique string preceded with a '<'│ │ │ │and terminated with a '>'. This may also│ │ │ │be a real name specified as a fully │ │ │ │qualified path name. │ ├────────────┼────────────┼────────────────────────────────────────┤ │OPEN │DEFAULT │Opens the default view when the object │ │ │ │is created or when SysSetObjectData is │ │ │ │called. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │SETTINGS │Open the settings view when the object │ │ │ │is created or when called from │ │ │ │SysSetObjectData. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │ │You can use the Object Editor to open │ │ │ │objects by using this keyname in the │ │ │ │setup string. The default is to not open│ │ │ │a view. │ ├────────────┼────────────┼────────────────────────────────────────┤ │MINWIN │HIDE │Views of this object will hide when │ │ │ │their minimize button is selected. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │VIEWER │Views of this object will minimize to │ │ │ │the minimized window viewer when their │ │ │ │minimize button is selected. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │DESKTOP │Views of this object will minimize to │ │ │ │the Desktop when their minimize button │ │ │ │is selected. │ ├────────────┼────────────┼────────────────────────────────────────┤ │VIEWBUTTON │HIDE │Views of this object will have a hide │ │ │ │button as opposed to a minimize button. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │MINIMIZE │Views of this object will have a │ │ │ │minimize button as opposed to a hide │ │ │ │button. │ ├────────────┼────────────┼────────────────────────────────────────┤ │CCVIEW │YES │New views of this object will be created│ │ │ │every time the user selects open. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │Open views of this object will resurface│ │ │ │when the user selects open. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │DEFAULT │The default value of the concurrent view│ │ │ │setting of the system will be used when │ │ │ │the user selects open. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ICONFILE │filename │This sets the object's icon. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ICONRESOURCE│id,module │This sets the object's icon. 'id' is the│ │ │ │identity of an icon resource in the │ │ │ │'module' dynamic link library (DLL). │ ├────────────┼────────────┼────────────────────────────────────────┤ │ICONPOS │x,y │This sets the object's initial icon │ │ │ │position. The x and y values represent │ │ │ │the position in the object's folder in │ │ │ │percentage coordinates. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NODELETE │YES │Will not allow you to delete the object.│ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │Resets the no delete style and allows │ │ │ │you to delete the object. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NOCOPY │YES │Will not allow you to copy the object │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │Resets the no copy style and allows you │ │ │ │to copy the object. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NOMOVE │YES │This will set the object's no move │ │ │ │style. You cannot then move the object │ │ │ │to another folder. A shadow will be │ │ │ │created on a move if the NOSHADOW style │ │ │ │is not set. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │Resets the no move style. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NODRAG │YES │Will not allow you to drag the object. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │This resets the object's no drag style. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NODROP │YES │Will prevent you from dropping another │ │ │ │object onto the object. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │This resets the object's no drop style. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NOSHADOW │YES │Will not allow you to create a shadow │ │ │ │link. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │Resets the no shadow property and allows│ │ │ │you to create shadows. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NOLINK │YES │Will not allow you to create a shadow. │ │ │ │NOLINK is a synonym for NOSHADOW. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │Allows you to create shadows. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NORENAME │YES │Will not allow you to rename and object.│ │ │ │Use this property to prevent a user from│ │ │ │changing an object's title. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NOSETTINGS │YES │removes the OPEN SETTINGS item from the │ │ │ │popup menu. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │allows the OPEN SETTINGS item in the │ │ │ │popup menu. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │Resets the no rename style. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NOPRINT │YES │Will not let you to print the object. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │Resets the no print style. │ ├────────────┼────────────┼────────────────────────────────────────┤ │NOTVISIBLE │YES │The object will not be displayed │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │makes the object visible. │ ├────────────┼────────────┼────────────────────────────────────────┤ │HELPPANEL │id │This sets the object's default help │ │ │ │panel. │ ├────────────┼────────────┼────────────────────────────────────────┤ │HELPLIBRARY │filename │This sets the help library. │ ├────────────┼────────────┼────────────────────────────────────────┤ │TITLE │Title │This set the objects title. You can use │ │ │ │the parameter with the SysSetObjectData │ │ │ │function or the Object Editor Update │ │ │ │action to change an objects title. │ ├────────────┼────────────┼────────────────────────────────────────┤ │TEMPLATE │YES │Creates the object as a template. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │Resets the object's template style. │ ├────────────┼────────────┼────────────────────────────────────────┤ │DEFAULTVIEW │SETTINGS │Sets the default open view to the │ │ │ │settings view. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │id │This sets the default open view to the │ │ │ │id (0-9) │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │DEFAULT │This sets the default view to the │ │ │ │default view defined by the object │ │ │ │class. │ └────────────┴────────────┴────────────────────────────────────────┘ ═══ 5.2. Folder Setup Keywords ═══ The following table shows the "keyname=value" pairs supported by all Folder classes. These classes include the standard folder class WPFolder, as well as the desktop class WPDesktop. You can use these setup strings in addition to the Standard Setup keynames ┌────────────┬────────────┬────────────────────────────────────────┐ │KEYNAME │VALUE │DESCRIPTION │ ├────────────┼────────────┼────────────────────────────────────────┤ │ALWAYSSORT │YES │Instructs to object to always maintain │ │ │ │sort order. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NO │Sort order is no maintained. │ ├────────────┼────────────┼────────────────────────────────────────┤ │OPEN │DEFAULT │Opens the default view when │ │ │ │SysSetObjectData is called. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │SETTINGS │Open the settings view when │ │ │ │SysSetObjectData is called. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │ICON │Open icon view when object is created. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │TREE │Open tree view when object is created. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │DETAILS │Open details view when object is │ │ │ │created. │ ├────────────┼────────────┼────────────────────────────────────────┤ │ICONVIEW │s1[,s2,...sn│Set icon view to specified style(s). │ │ │ │s1[,s2,...sn] are one or more styles. │ ├────────────┼────────────┼────────────────────────────────────────┤ │TREEVIEW │s1[,s2,...sn│Set tree view to specified style(s). │ │ │ │s1[,s2,...sn] are one or more styles. │ ├────────────┼────────────┼────────────────────────────────────────┤ │DETAILSVIEW │s1[,s2,...sn│Set details view to specified style(s). │ │ │ │s1[,s2,...sn] are one or more styles. │ ├────────────┼────────────┼────────────────────────────────────────┤ │(styles) │FLOWED │flowed list items in an icon view │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NONFLOWED │non-flowed list items in an icon view │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NONGRID │non-gridded icon view │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NORMAL │normal size icons │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │MINI │small icons │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │INVISIBLE │no icons │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │LINES │lines in tree view │ ├────────────┼────────────┼────────────────────────────────────────┤ │ │NOLINES │no lines in tree view │ ├────────────┼────────────┼────────────────────────────────────────┤ │BACKGROUND │filename │Sets the folder background. filename is │ │ │ │the name of a file in the \OS2\BITMAP │ │ │ │directory of the boot drive. │ ├────────────┼────────────┼────────────────────────────────────────┤ │WORKAREA │YES │Makes the folder a Workarea folder │ └────────────┴────────────┴────────────────────────────────────────┘ ═══ 5.3. Program Setup Keywords ═══ The following table shows the "keyname=value" pairs supported by all program class instances. This includes the standard program class WPProgram and its decendents. You can use these setup strings in addition to the Standard Setup Keynames when creating Program objects. ┌────────────┬──────────────────────────┬────────────────────────────────────┐ │KEYNAME │VALUE │DESCRIPTION │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ASSOCFILTER │filters │Sets the filename filter for files │ │ │ │associated to this program. Multiple│ │ │ │filters are separated by commas. │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ASSOCTYPE │type │Sets the type of files associated to│ │ │ │this program. Multiple filters are │ │ │ │separated by commas. │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │EXENAME │filename │Sets the name of the program │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │MAXIMIZED │YES │Start program maximized │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │MINIMIZED │YES │Start program minimized │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │NOAUTOCLOSE │YES │Leaves the window open upon program │ │ │ │termination. │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │NO │Closes the window when the program │ │ │ │terminates. │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │PARAMETERS │params │Sets the parameters list, which may │ │ │ │include substitution characters │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │STARTUPDIR │pathname │Sets the working directory │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │PROGTYPE │PROG_31_ENH │Sets the session to enhanced │ │ │ │compatibility full screen mode. │ │ │ │(OS/2 V2.1 or later). │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │PROG_31_ENHSEAMLESSVDM │Sets the session to WIN-OS/2 window │ │ │ │in a separate session enhanced │ │ │ │compatibility mode. (OS/2 Version │ │ │ │2.1 or later) │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │PROG_31_ENHSEAMLESSCOMMON │Sets the session to WIN-OS/2 window │ │ │ │in the WIN-O/S2 enhanced │ │ │ │compatibility common session. (OS/2 │ │ │ │Version 2.1 or later) │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │FULLSCREEN │Sets the session type to OS/2 full │ │ │ │screen │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │PM │Sets the session type to PM │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │SEPARATEWIN │Sets the session type to WIN-OS2 │ │ │ │window running in a separate VDM. │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │PROG_31_STD │Set the session to standard │ │ │ │compatibility full screen mode. │ │ │ │(OS/2 V2.1 or Later) │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │PROG_31_STDSEAMLESSVDM │Sets the session to WIN-OS/2 window │ │ │ │in a separate session standard │ │ │ │compatibility common. (OS/2 V2.1 or │ │ │ │Later) │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │PROG_31_STDSEAMLESSCOMMON │Sets the session to WIN-OS/2 window │ │ │ │in the WIN-O/S2 standard │ │ │ │compatibility common session. (OS/2 │ │ │ │V2.1 or Later) │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │VDM │Sets the session type to DOS full │ │ │ │screen. │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │WIN │Sets the session type to WIN-OS2 │ │ │ │full screen │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │WINDOWABLEVIO │Sets the session type to OS/2 │ │ │ │windowed │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │WINDOWEDVDM │Sets the session type to DOS │ │ │ │windowed │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │ │WINDOWEDWIN │Sets the session type to WIN-OS2 │ │ │ │windowed │ ├────────────┼──────────────────────────┼────────────────────────────────────┤ │SET │XXX=VVV │XXX is any environment variable. VVV│ │ │ │sets the value of the environment │ │ │ │variable. Also used to specify DOS │ │ │ │settings on DOS and Windows │ │ │ │programs. │ └────────────┴──────────────────────────┴────────────────────────────────────┘ Notes. The following example shows the setup string for a program object. OBJECTID=;PROGTYPE=PM; EXENAME=C:\OS2\E.EXE;STARTDIR=C:\; ICONFILE=C:\PEN.ICO;ASSOCFILTER=*.TXT,*.DOC; NORENAME=YES;NODELETE=YES To specify the DOS Setting values for a program object you use SET keyname=value. for example: "SET DOS_FILES=45;SET DOS_HIGH=1" To specify ON or OFF use the value 1 for ON and 0 for OFF. For example: "SET COM_HOLD=1;SET HW_TIMER=1;SET DOS_BREAK=0" To add more than one DOS_DEVICE you need to separate each device with a comma For example: "...;SET DOS_DEVICE=C:\OS2\MDOS\ANSI.SYS,C:\OS2\MDOS\EGA.SYS;" The following list enumerates the DOS Setting keynames and values. You can obtain detailed descriptions of these keynames from the on-line help in the Session SET COM_HOLD=0|1 SET DOS_BACKGROUND_EXECUTION=0|1 SET DOS_BREAK=0|1 SET DOS_DEVICE=device_driver_path SET DOS_FCBS=number SET DOS_FCBS_KEEP=number SET DOS_FILES=number SET DOS_HIGH=0|1 SET DOS_LASTDRIVE=letter SET DOS_RMSIZE=size SET DOS_SHELL=dos_shell_path SET DOS_STARTUP_DRIVE=letter SET DOS_UMB=0|1 SET DOS_VERSION=program^,maj^,min^,count SET DPMI_DOS_API=AUTO|ENABLED|DISABLED SET DPMI_MEMORY_LIMIT=number SET DPMI_NETWORK_BUFF_SIZE=size SET EMS_FRAME_LOCATION=AUTO|NONE|address SET EMS_HIGH_OS_MAP_REGION=size SET EMS_LOW_OS_MAP_REGION=size SET EMS_MEMORY_LIMIT=size SET HW_NOSOUND=0|1 SET HW_ROM_TO_RAM=0|1 SET HW_TIMER=0|1 SET IDLE_SECONDS=time SET IDLE_SENSITIVITY=time SET KBD_ALTHOME_BYPASS=0|1 SET KBD_BUFFER_EXTEND=0|1 SET KBD_CTRL_BYPASS=NONE|ALT_ESC|CTRL_ESC SET KBD_RATE_LOCK=0|1 SET MEM_EXCLUDE_REGIONS=region SET MEM_INCLUDE_REGIONS=region SET MOUSE_EXCLUSIVE_ACCESS=0|1 SET PRINT_TIMEOUT=time SET VIDEO_FASTPASTE=0|1 SET VIDEO_MODE_RESTRICTION=NONE|CGA|MONO SET VIDEO_ONDEMAND_MEMORY=0|1 SET VIDEO_RETRACE_EMULATION=0|1 SET VIDEO_ROM_EMULATION=0|1 SET VIDEO_SWITCH_NOTIFICATION=0|1 SET VIDEO_WINDOW_REFRESH=frequency SET VIDEO_8514A_XGA_IOTRAP=0|1 SET XMS_HANDLES=number SET XMS_MEMORY_LIMIT=amount SET XMS_MINIMUM_HMA=size ═══ 5.4. Launch Pad Setup Keywords ═══ The following table shows the "keyname=value" pairs supported by Launchpad class instances and its descendents. These setup strings can be used in addition to the Standard Setup Keywords to customize launchpad objects. The launchpad class name is WPLaunchPad This class is available in OS/2 Warp Version 3, or higher. The Launchpad provides fast access to frequently used objects and Desktop actions. Objects may be placed on the Launchpad or in drawers. The drawers are represented by a small button above objects on the Launchpad. There is no limit to the number of Launchpads that may exist in the system. The system Toolbar is defined with an OBJECTID of . You can use these setup strings in addition to the Standard Setup keynames ┌───────────────┬──────────────────┬────────────────────────────────────────┐ │KEYNAME │VALUE │DESCRIPTION │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │FPOBJECTS │object IDs or path│Adds objects to the end of the Toolbar. │ │ │and file names │If multiple objects exist, the objects │ │ │ │are separated by a comma. For example: │ │ │ │, │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │DRAWEROBJECTS │drawer number, │Adds the objects to the end of the │ │ │object IDs or path│numbered Toolbar drawer. The drawer │ │ │and file names │number is followed by a comma-delimited │ │ │ │set of object IDs or path and file │ │ │ │names. The drawer number and first │ │ │ │object must be separated by a comma. │ │ │ │Examples of drawer numbers : 0=Toolbar, │ │ │ │1=Left-most drawer, etc. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │LPCLOSEDRAWER │YES │The Toolbar drawers will close after an │ │ │ │object in the drawer is opened. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │ │NO │The Toolbar drawers will stay open after│ │ │ │an object in the drawer is opened. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │LPACTIONSTYLE │TEXT │Display the action buttons as text (the │ │ │ │default). │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │ │OFF │Turns off the display of action buttons.│ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │ │MINI │Displays the action buttons as │ │ │ │mini-icons. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │ │NORMAL │Displays the action buttons as normal │ │ │ │(large) icons. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │LPVERTICAL │YES │The Toolbar will be displayed │ │ │ │vertically. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │ │NO │The Toolbar will be displayed │ │ │ │horizontally (the default). │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │LPTEXT │YES │The object titles will appear on the │ │ │ │Toolbar. This has no effect on the │ │ │ │objects in the drawers. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │ │NO │The object titles will be hidden. This │ │ │ │has no effect on the objects in the │ │ │ │drawers. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │LPDRAWERTEXT │YES │The object titles will appear on the │ │ │ │objects in the drawers. This has no │ │ │ │effect on the objects on the Toolbar. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │ │NO │The object titles will be hidden. This │ │ │ │has no effect on the objects on the │ │ │ │Toolbar. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │LPSMALLICONS │YES │Objects are displayed using small icons.│ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │ │NO │Objects are displayed using large │ │ │ │(normal) icons. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │LPHIDECTLS │YES │The frame controls (title bar and system│ │ │ │menu) are hidden (the default). │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │ │NO │The frame controls are displayed. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │LPFLOAT │YES │The Toolbar will float on top of all │ │ │ │other windows. │ ├───────────────┼──────────────────┼────────────────────────────────────────┤ │ │NO │The Toolbar will not float on top of all│ │ │ │other windows. │ └───────────────┴──────────────────┴────────────────────────────────────────┘ Many people have asked us how to construct a restricted launch pad. Since the launchpad slavishly hangs on to the NODROP=NO style you could consider recreating the object every time the system restarts by creating an auto execute instance of the Object Editor. The following Object Make file can reconstruct the system launchpad for you and protect it at the same time. ┌──────────────────────────────────────────────────────────────────────┐ │* │ │* File: \SWP\DATA\RLAUNCH.OMF │ │* │ │* Restricted Launchpad │ │* │ │* Reset the launch page NODELETE style │ │* │ │location "" │ │setup "NODELETE=NO;" │ │action E │ │* │ │* Delete the launch pad │ │* │ │location "" │ │action D │ │* │ │* Create a new launchpad │ │* │ │class "WPLaunchPad" │ │location "" │ │title "LaunchPad" │ │setup "LPACTIONSTYLE=OFF;" │ │setup "LPCLOSEDRAWER=YES;" │ │setup "LPHIDECTLS=YES;" │ │setup "NODELETE=YES;NOCOPY=YES;NOMOVE=YES;" │ │setup "NOSETTINGS=YES;NOSHADOW=YES;NORENAME=YES;" │ │setup "FPOBJECTS=,,,;" │ │setup "OBJECTID=;" │ │action R │ │* │ │* Create an Object editor instance to build it again │ │* every time the system starts │ │* │ │class "WPProgram" │ │location "" │ │title "Create New LaunchPad" │ │setup "EXENAME=OBJEDIT.EXE" │ │setup "PARAMETERS=/NOLOGO /RUN=\SWP\DATA\RLAUNCH.OMF" │ │setup "PROGTYPE=PM;" │ │setup "NOMOVE=YES;" │ │setup "NOSETTINGS=YES;" │ │setup "OBJECTID=;" │ │action R │ └──────────────────────────────────────────────────────────────────────┘ ═══ 5.5. Printer Setup Keywords ═══ The following table shows the "keyname=value" pairs recognized by WPPrinter class instances and its descendents. These setup strings can be used in addition to the Standard Setup Keywords to create and customize Printer objects. ┌─────────────────────┬───────────────┬────────────────────────────────────────┐ │KEYNAME │VALUE │DESCRIPTION │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │APPDEFAULT │YES │This printer object is to become the │ │ │ │application's default printer object for│ │ │ │printing. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │ │NO │This printer object is not to become the│ │ │ │application's default printer object for│ │ │ │printing. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │DEFAULTVIEW │DETAILS │Default open view for this printer │ │ │ │object is in details view. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │ │ICON │Default open view for this printer │ │ │ │object is in icon view. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │JOBDIALOGBEFOREPRINT │YES │The job properties dialog is displayed │ │ │ │before printing. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │ │NO │The job properties dialog is not │ │ │ │displayed before printing. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │JOBPROPERTIES │filename │The complete path to a binary file │ │ │ │containing the default job properties │ │ │ │for this printer object. This data can │ │ │ │be obtained by using the SplQueryQueue │ │ │ │API of the spooler. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │OUTPUTTOFILE │YES │The output of this printer object goes │ │ │ │to a file. The user will be prompted │ │ │ │for a filename each time a print job is │ │ │ │submitted to this printer object. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │ │NO │The output of this printer object does │ │ │ │not go to a file. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │PORTNAME │portname │The names of already installed ports to │ │ │ │which this printer object is to be │ │ │ │attached. In the case of more than one │ │ │ │port, specify a comma-separated list. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │PRINTDRIVER │driver.device │The complete name of the print-driver │ │ │ │that this printer object is to use. For│ │ │ │example: 'LASERJET.HP Laserjet IIP'. In│ │ │ │the case of more than one printdriver, │ │ │ │specify a comma-separated list. These │ │ │ │printer drivers must already be │ │ │ │installed. The printer-driver name is │ │ │ │the title of the driver icon in the │ │ │ │Printer Driver page of the Printer │ │ │ │device settings notebook. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │PRINTERSPECIFICFORMAT│YES │The printer object spools print jobs in │ │ │ │PM_Q_RAW format. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │ │NO │The printer object spools print jobs in │ │ │ │PM_Q_STANDARD format. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │PRINTWHILESPOOLING │YES │The printing is enabled while the job is│ │ │ │spooling. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │ │NO │The printing is disabled while the job │ │ │ │is spooling. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │QSTARTTIME │time │The time when the printer object starts │ │ │ │printing. The time format is HH:MM, and │ │ │ │the base is a 24-hour clock. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │QSTOPTIME │time │The time when the printer object is to │ │ │ │stop printing. The time format is HH:MM,│ │ │ │and the base is a 24-hour clock. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │QUEUENAME │name │The local queue name for the printer │ │ │ │object. If a queue name is not │ │ │ │specified, one is created by the printer│ │ │ │object. The QUEUENAME key will be │ │ │ │ignored if this object has already been │ │ │ │assigned a queue. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │QUEUEDRIVER │qdrvname │The queue driver name. The queue driver│ │ │ │must already be installed. │ ├─────────────────────┼───────────────┼────────────────────────────────────────┤ │SEPARATORFILE │filename │A separator file that prints before each│ │ │ │print job. │ └─────────────────────┴───────────────┴────────────────────────────────────────┘ ═══ 5.6. Network Printer Setup Keywords ═══ The following table shows the "keyname=value" pairs recognized by the WPRPrinter class and its descendents. These setup strings can be used in addition to the Standard Setup Keywords to create and customize Printer objects. Remote or Network printer objects represent a print resource on another computer or server. A network must be installed before objects of this class will behave properly. ┌─────────────────┬─────────────────┬──────────────────────────┐ │KEYNAME │VALUE │DESCRIPTION │ ├─────────────────┼─────────────────┼──────────────────────────┤ │ICON │filename │The name of the .ICO file │ │ │ │to be used as the icon for│ │ │ │this object. │ ├─────────────────┼─────────────────┼──────────────────────────┤ │NETID │ │The full name of the │ │ │ │printer resource as it is │ │ │ │known to the network. For │ │ │ │example: │ │ │ │LS:\\SERVER\LASERJET │ │ │ │The NETID key will be │ │ │ │ignored and FALSE will be │ │ │ │returned if this object │ │ │ │has already been assigned │ │ │ │a NetId. │ ├─────────────────┼─────────────────┼──────────────────────────┤ │REFRESHINTERVAL │value │Time interval, in seconds,│ │ │ │when the printer object is│ │ │ │refreshed. │ ├─────────────────┼─────────────────┼──────────────────────────┤ │SHOWJOBS │ALL │All jobs are displayed in │ │ │ │the printer object. │ ├─────────────────┼─────────────────┼──────────────────────────┤ │ │OWN │Only the current user's │ │ │ │jobs are displayed in the │ │ │ │printer object. │ └─────────────────┴─────────────────┴──────────────────────────┘ ═══ 6. Creating Desktops ═══ Desktop creation is not such a hard thing. The OS/2 Operating system does it automatically for you. To deploy a customized desktop all you have to do is back it up then restore it to as many machines as required. Traveling Workplace makes speedy work of this process. Desktop creation is another capability of Traveling Workplace. To use this capability the need to know something more about how desktops are defined. As we have said in the Traveling Workplace reference, an OS/2 Desktop consists of three elements. These are a User Profile, a System Profile, and a desktop directory including its subdirectories. The User profile is usually named C:\OS2\OS2.INI. The System Profile is usually named C:\OS2\OS2SYS.INI. The desktop directory is usually named C:\DESKTOP. These names are not actually required. The User Profile is defined in the CONFIG.SYS file using the USER_INI environmental variable. The System Profile is defined in the CONFIG.SYS file using the SYSTEM_INI environmental variable. The desktop directory name is defined in the System Profile. Desktops can also be defined in what is called a Resource File. IBM supplies default desktop definitions in the C:\OS2 directory. the default user profile can be build from the INI.RC resource file and the default system profile can be built from the INISYS.RC resource file. Resource files are text files you can edit with the System Editor or the Enhanced editor. How do you build these INI files. You use the MAKEINI.EXE utility supplied with OS/2. Here is an example procedure that you can execute from a command prompt or REXX file. ┌──────────────────────────────────────────┐ │ │ │C: │ │CD \OS2 │ │MAKEINI.EXE OS2AA.INI INI.RC │ │MAKEINI.EXE OS2SYSAA.INI INISYS.RC │ │ │ └──────────────────────────────────────────┘ How do you make this new desktop active. Well, just edit the CONFIG.SYS and change the USER_INI, and SYSTEM_INI environment variables to use the profiles you just created. Now reboot your computer. Here is how the CONFIG.SYS lines should look. ┌──────────────────────────────────────────┐ │ │ │ │ │ │ │SET USER_INI=C:\OS2\OS2AA.INI │ │SET SYSTEM_INI=C:\OS2\OS2SYSAA.INI │ │ │ │ │ │ │ └──────────────────────────────────────────┘ Where is the desktop directory you say. After you reboot your computer, the Workplace shell constructs the desktop directory, its subdirectories and all the objects they contain. It got the necessary information from the newly constructed User and system Profiles which got their information from the INI.RC and INISYS.RC resource files. If your eyes are not glazed over by now then lets talk about how the benefits of this process and how SYTEGRATION tools can help you to speed up and automate it. First, a few benefits: 1. Total portability and machine type independence. 2. A concise Desktop definition with maximum flexibility. 3. Lets you omit objects right from the start. For example, the Templates folder, the Drives Folder, the OS/2 System Folder. 4. Lets you define install printer drives, display drivers, Fonts, and lots of other things you may need. Now, the tools. Object Manager The Object Manager is used to save object definitions from an existing desktop. These definitions are stored in an Object Make File. Object Editor The Object Editor Allows you to edit an Object Make File or a Resource File. You can use this utility to generate a new user resource file similar to INI.RC. The Object Editor can can also populate a desktop with objects that you define or saved with the object manager. Traveling Workplace. The Traveling Workplace is used to construct the New Desktop. This utility converts the resource files into User and System profiles, Switches immediately to the new desktop, optionally transfer information from your active deskop profiles, and optional update the CONFIG.SYS. It will do all this in a hands-off or hands-on mode. We supply samples resource files you can use to construct a blank, or minimally populated desktop. You can also copy and modify the existing INI.RC to create your own minimal desktop, or use the Object Editor to construct one. The Desktop creation process goes like this. 1. Using the Object Editor, Open the Desktop Resource File (INI.RC). 2. Delete the objects you will not need in your new desktop. 3. Save it as an Object Make File. Lets call it NEWDESK.OMF 4. Open the Object Manager. Select folders or objects you want to migrate to your new desktop. Save and append each object or folder into the NEWDESK.OMF. 5. Using the Object Editor, Open the NEWDESK.OMF file. Edit the object list to fit your requirements. Save the NEWDESK.OMF as a Desktop Resource File. Lets call it NEWDESK.RC. 6. Configure Traveling Workplace preferences. You may want to select application data to be copied from the active desktop to the new desktop. Perhaps you can store these preferences in a response file for later use. Lets call the response file NEWDESK.RSP. 7. Run the Traveling workplace to construct and switch to the new desktop. Here is an example procedure that you can execute from a command prompt or REXX file. ┌──────────────────────────────────────────────────────────────────────────────┐ │ │ │TWKPLACE.EXE /NOPROMPT /NEW /URC=NEWDESK.RC /RSP=NEWDESK.RSP │ │ │ └──────────────────────────────────────────────────────────────────────────────┘ The Secure Workplace Desktop management front end can be used to associate a desktop resource file with a particular user. Now you can read about the structure and contents of a resource file. ═══ 6.1. Contents of a Resource file ═══ Resource files can be used to create a new desktop or to update an existing desktop. Be sure to completely read this section. Real power is waiting for you at the end. The User Resource file (INI.RC) has four or more sections. These are o Resource File Header o System , Device Driver, fonts, and national language information. o Object definitions o Colors and display modes Each section starts with a STRINGTABLE statement, and is enclosed between BEGIN and END statements. The statement STRINGTABLE can have a modifier. These are REPLACEMODE and REPLACEMODE OFF. If you use STRINGTABLE REPLACEMODE then objects defined within the BEGIN and END statments will replace existing objects. If you use STRINGTABLE REPLACEMODE OFF then objects defined within the BEGIN and END statements will use the create or change action by default, unless you specify REPLACE within the object definition itself. Each line between the BEGIN and End statements are commands. Commands have three parameters. These parameters are enclosed in double quotes with a space between each parameter. For example: "PM_InstallObject" "Desktop5;WPDesktop;?:\\" "OBJECTID=" The three parameters are defined as: "Application" "Key" "Value" Application This parameter is used to tell the system where you want to make a change. This is usually a name of a group or application in the OS/2 system that contains objects. Examples of these applications are PM_Fonts, PM_System_Colors and PM_SPOOLER. The statement we are really interested in is PM_InstallObject We will discuss it in detail later. Key This is usualy a name of a object or a key for a setting in the Workplace Shell. Keys must be related to the application that you specify in the first parameter. Value Object settings or values for the Key parameter. ┌───────────────────────────────────────────────────────────────────┐ │ Common Applications │ ├───────────────────────────────────┬───────────────────────────────┤ │ APPLICATION │ DESCRIPTION │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_ASSOC_TYPE │ Association type. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_DEVICE_DRIVERS │ Printer device driver specs. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_Font_Drivers │ Presentation Manager Font │ │ │ Driver. (PMATM) │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_Fonts │ PM fonts with path and │ │ │ filename. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_INFO │ OS/2 System information. │ │ │ Such as the version number. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_IMAGECNV │ The image conversion path. │ ├───────────────────────────────────┼───────────────────────────────┤ │ SYS_DLLS │ DLLs used by the system for │ │ │ example REXXINIT. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_SPOOLER │ Printer spooler information. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_National │ PM National language settings.│ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_IBMBGA │ PM 8514 adapter settings. │ ├───────────────────────────────────┼───────────────────────────────┤ │ WINOS2 │ WIN-OS2 settings. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_Workplace │ Global global settings for │ │ │ the Workplace Shell. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_Workplace:InstallGroups │ Create group icons on the │ │ │ desktop. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_Workplace:InstallAutorun │ Install programs that should │ │ │ run the first time the system │ │ │ comes up. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_Workplace:InstallDiskOnDesktop │ Install the disk folder │ │ │ shadow on the desktop the │ │ │ same as the Drive A shadow │ │ │ that is default. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_ControlPanel │ Global settings for the │ │ │ Workplace Shell. These are │ │ │ the settings in the System │ │ │ settings notebook. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_InstallObject │ Creates new objects on the │ │ │ desktop. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_Colors │ Settings for each object's │ │ │ color. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_Default_Colors │ Settings for each object's │ │ │ default colors when you hit │ │ │ the Default button. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_DISPLAYDRIVERS │ Display drivers for the │ │ │ display adapter. │ ├───────────────────────────────────┼───────────────────────────────┤ │ PM_XXXXXX_Colors │ Scheme pallette colors. │ │ │ This information is │ │ │ in the INISYS.RC file. │ └───────────────────────────────────┴───────────────────────────────┘ Boot disk symbol is question mark (?) In a resource file, you can refer to the boot disk with a question mark (?). When OS/2 boots this is replaced with the drive letter on which OS/2 is installed. This question mark is used because OS/2 can be installed on any drive. You can refer to a file by using the drive letter for files you know the location of. Use the question mark (?) when the file is on the same drive as the operating system. Here is an example. "PM_InstallObject" "Editor;WPProgram;" "EXENAME=?:\OS2\E.EXE;OBJECTID=" Comments Comments begin with "/*" and end with "*/". Comments should remain on a line of their own. We strongly recommend that you use only single line comments. The Resource Header All resource files MUST contain a header or else magic does not happen. The header consists of a CODEPAGE statement followed by a STRINGTABLE statement, a BEGIN statement, ten lines of two double quotes, followed by an END statement. The header looks like this. ┌────────────────────────────────────────┐ │ │ │ /* optional comment line */ │ │ │ │ CODEPAGE 850 │ │ │ │ STRINGTABLE │ │ BEGIN │ │ │ │ "" │ │ "" │ │ "" │ │ "" │ │ "" │ │ "" │ │ "" │ │ "" │ │ "" │ │ "" │ │ │ │ END │ │ │ └────────────────────────────────────────┘ Object Definitions in a Resource File This is the information you should be most interested in. Object definitions use the same Application, Key and Value syntax we discussed before. To create, delete, or update objects use the case sensitive application name is PM_InstallObject. The Key contains the Title, Classname, the Location, and an Action code each seperated by a semicolon (;). The Value parameter contains the object Setup string. We discussed these items before in the section titled Creating a Workplace Object. Here is a symbolic representation of a PM_InstallObject command to give you an idea of where the object definition items are placed. "PM_InstallObject" "Title;Classname;Location;Action" "Setup String" Here is real example of how a PM_InstallObject command might look in a resource file. "PM_InstallObject" "System Clock;WPClock;" "OBJECTID=" The things to notice are: o The PM_InstallObject is literal and case sensitive. o The Application, Keys, and Value parameters are positional, enclosed in quotes, and separated by spaces. o The Title, Classname, Location, and Action are in the Key parameter, must always be in the same order, and separated by semicolons (;). o The Action code is optional. We discussed this earlier. The Action codes are a symbolically different but functionally the same as the ones you use with the object Editor or the REXX utilities. They are literally: REPLACE Used to create or replace objects. UPDATE Used to create or update objects. FAIL Used to create and object or fail if it exists. DELETE Used to delete an object. Now you have the information you need to understand and construct your own resource files. The Object Editor can do the work for you. Reference Material We refer you to the IBM Redbook "OS/2 Configuration techniques cracking the workplace shell" document number (GG24-2401-00) for a comprehensive guide to the information that can be included in Resource files. Our primary focus is on object definitions. You can leave every thing else alone or copy the information directly from the Active User and System Profiles when using the Traveling Workplace to create desktops. Of course some of the information is obvious. ═══ 7. Desktop Management Strategy ═══ The Secure Workplace Desktop management front end can be used to associate a desktop resource file with a particular user. The System Administration reference contains a complete disscussion of your options. The Traveling Workplace Reference also contains a discussion of multiple user desktop setup. We refer you to these sections for further details. ═══ 8. Tips and Techniques. ═══ Here is where we wave the magic wand and Grant you a diploma in Desktop Management. Better yet here is where we share some of the experience we have picked up along the way. Never create an object before it's folder The Object Editor processes files in sequential order. If you try to create an object before it's folder exists then the creation action will fail. Reset an Object's NODELETE style before deleting it. If the object's style is set to NODELETE=YES then the shredder will reject it. The Object Manager will delete it. The Object Editor cannot perform a Delete action on it. To delete the object first Update the Style to NODELETE=NO, then try the delete action. Here is an example Object Make File. LOCATION "" SETUP "NODELETE=NO;" ACTION E LOCATION "" ACTION D Always assign OBJECTIDs to objects you create If you fail to assign an object ID then you will not be able to use REXX or the Object Editor to update or delete them. The Object ID is like an address. If you do not have an address then you cannot find the object. (programmatically that is). If you fail to assign an OBJECTID drop the object on the Object Manager, Type in a new OBJECTID, then press the Update Button. Its hard to delete folders with undeletable contents When folder deletion fails and everything looks OK, it's probably because the folder contains an object with style NODELETE=YES. Force the deletion by using the command prompt or a DELDIR program. The only way to get rid of some objects. The only way to get rid of some objects is to omit them from a desktop user resource file and then rebuild the desktop. The Drive Folder and the Templates folder are examples of this phenomenon. If you do not want to get rid of these objects but you want to prevent a user from getting to them then make them invisible. In this case, only the Object Manager can see them. Use Program Objects rather than program files We have noticed that some people copy program files directly into a desktop folder to install them. This practice causes large desktop images. It is better to drag a program icon from the templates folder and create a reference to the program. Use Shadows rather than Data files on the desktop We have noticed that some people copy data files directly into a desktop folder to install them. This practice creates large desktop images. It is better to make a shadow of the data file. ═══ 9. Glossary ═══ Action Refers to an action taken upon a workplace object. Available actions are Create, Delete, or Modify. OS/2 Warp defines additional actions such as Move, and Copy. Archive Refers to directory containing one or generations of backup desktops. Archive Directory Same as archive. Access Control Refers to the enforcement of user privileges. The Secure Workplace includes a Workplace access control class in the Standard Edition. In the Professional Edition a file access control class is added. Access Control List User Privileges or Resource Privileges. Classname A workplace object class or type. The classname is a case sensitive word such as WPProgram, WPFolder, WPPrinter, and others. Create a Desktop A Traveling Workplace function that constructs a new desktop from resource file(s). Backup a Desktop A Traveling Workplace function that saves the active desktop plus additional files from a local workstation into an archive directory. Desktop Your interface to Workplace Objects. The Desktop is a folder usually named (\DesktopX) where X is a alphanumeric character assigned by Traveling Workplace. The Desktop can have any name and can reside on any drive. The desktop also consists of a user profile (ie.OS2.INI) and a system profile (ie.OS2SYS.INI). The desktop folder is always open when the Workplace shell is active. The Desktop Object ID is usually . Workplace is a synonym for Desktop. Desktop Management The control, protection, and administration of Desktops, Workplaces, and/or workstations. Desktop management activities can include Backup, Restore, Create, Switch, Configuration, Access Control, Privilege assignment, and Software Distribution. Desktop Slot We use the term "desktop name", "desktop slot", and "slot" to refer to one of the 37 possible on-line desktops that Traveling Workplace recognizes. the desktop slot refers to the names given to the user profile, the system profile, and the desktop directory. For example, slot 0 would consist of a user profile named OS20.INI, a system profile named OS2SYS0.INI and a desktop directory named \DESKTOP0 or \DESKTO0. the default names would consist of OS2.INI, OS2SYS.INI, and \DESKTOP respectively. Slots have suffixes 0 thru 9 and A thru Z. Desktop Resource File Refers to a User Resource File that was made from INI.RC. Traveling workplace will build a desktop from a User Resource file. Object Editor can Read and Write Resource Files. Dynamic Password A password that is based on the system clock and a seed string you assign. Folder A directory object in your Workplace. Folder objects usually appear as icons that look like file folders you can purchase at a stationay store. Location For object creation this refers to an object's containing folder. For object deletion and modification this refers to the object itself. Object Usually refers to a Workplace Object. OBJECTID A unique name that can be used to refer to Workplace Object. You can also specify a fully qualified file system path. An OBJECTID begins with '<' and ends with '>'. On-line Workplace A Desktop that resides on a local machine and is not in an archive directory. On-line workplaces can be active or inactive. Only one desktop can be active at a time. Parent Refers to the folder or directory that contains an object you are interested in. Privilege Refers to a users access level to an object. Privileges include open, execute, read, write, delete, copy, move, rename, shadow, settings, visible, drag, drop, as well as pop-up menu items. Profile Usually refers to a file containing Applications, Keys, and KeyValues examples are OS2.INI and OS2SYS.INI. Remote Parlance for resources residing on Network Server, Local Area Network, Wide Area Network. Also used to refer to administration of off-site workstations. Restoring a Desktop A Traveling Workplace function that copies a desktop plus additional files from an archive directory into the local workstation. The restored desktop becomes an on-line desktop. The restored desktop becomes active after it is restored. Resource A local or remote object. Also refers to printer and communications ports. The Secure Workplace cannot enforce access to a remote machine that does not have the product installed. Port access control is possible in the professional edition with the file access control driver installed. Resource Privilege The list of objects or resources and their privileges that has been granted to a user. The Secure Workplace constructs these privileges when the user signs on. Secure Workplace The name of Syntegration's Security and Desktop Management product. Setup string A series of "keyname=value" pairs, that defines the behavior of a Workplace object. this is also known as assigning settings. Settings The properties of an object. You can change an object's settings with a setup string or through it's settings notebook. Settings Notebook The user interface to an object's settings. You can open up the settings notebook by placing the mouse over the object icon, pressing the right mouse button, and selecting the "Settings" pop-up menu option. In OS/2 V2.XX the setting option is in the "Open" cascaded menu. Sign OFF Synonym for logout or logoff. The reverse of sign on. After Sign OFF the user is no longer privileged. A Sign ON or Shutdown follows. Sign ON Synonym for login or logon. The procedure by which users identify and authenticate themselves by entering a User ID and a password. Sign ON can be local or remote. remote signon is the same as single sign on. Single Sign-ON Synonym for login or logon. The procedure by which users identify and authenticate themselves by entering a User ID and a password. The user is usually authenticated by a Network Server, Remote Host, and/or another user registry residing on the local machine. The Secure Workplace uses this feature to allows administrators to maintain a centralized password database, or to allow for sign-on to multiple hosts. Switching Desktops A Traveling workplace function that lets you change the active desktop. You switch between on-line desktops. System Profile Refers to a Profile that the OS/2 Operating system uses to store system information The file name is usually OS2SYS.INI. System Resource File Refers to a Resource File that can be converted to a System Profile. You use the MAKEINI.EXE utility to perform the conversion. OS/2 comes with a default System Resource file named INISYS.RC. Traveling Workplace The name of Syntegration's Desktop Image management product. This program is included with The Secure Workplace Professional Edition. Title Usually refers to an object's title. This title appears below the object's icon Unattended A procedure that is executed without user or administrator attention or interference. Unattended Installation Installing a product on a local workstation without user interference or administrator attention. Unattended Customization Product configuration on a local workstation without user interference or administrator attention. User The person who signs on to a workstation. User Privilege An object or resources access control list. The list consists of users and there privileges to a resource. The system administrator grants user privileges. User Profile Refers to a Profile that the OS/2 Operating system uses to store information about your desktop. The File name is usually OS2.INI. Application programs also use this file to store persistent information. User Resource File Refers to a Resource File that can be converted to a User Profile. You use the MAKEINI.EXE utility to perform the conversion. OS/2 comes with a default User Resource file named INI.RC. User Resource files can be used build new desktops. Traveling workplace will build a desktop from a user resource file. Object Editor can Read and Write Resource Files. Workplace Synonmy for an OS/2 desktop. Also used as a short hand name for the Workplace Shell. You can also extend this to refer to all the objects that exist on your hard drive(s). Workplace Object Any Icon you can see on a OS/2 Desktop. These objects have other properties you can set from their settings notebook. Files and Directories are workplace objects. Abstract objects are located in the Desktop' User Profile (ie.OS2X.INI). Workstation A personal computer.